<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

//editando

class turma extends CI_Controller {
	public function __construct(){
		parent::__construct();
	}
	
	public function exlcuir($id){
		$this->load->model("loginmodel", "login");
		$saida = array();
		$saida['error'] = -1;
		$saida['msg'] = "Erro desconhecido";
		if($this->login->testaLogado("admin")){
			if(is_numeric($id)){
				$this->load->model("dao/TurmaDAO", "tDAO");
				$ret = $this->tDAO->excluir($id);
				if($ret){
					$saida['error'] = 0;
					$saida['msg'] = "Excluido com sucesso";
				} else {
					$saisa['error'] = -3;
					$saida['msg'] = "Erro ao excluir";
				}
			} else {
				$saida['error'] = -2;
				$saida['msg'] = "Id Inválido";
			}
		}
		else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function buscarTurma(){
		$this->load->model("loginmodel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/TurmaDAO", "tDAO");
			if(isset($_POST['busca']) && $_POST['busca'] != ""){
				$busca = $_POST['busca'];
				$listaTurmas = $this->tDAO->getTurmasBusca($busca);
			} else {
				$listaTurmas = $this->tDAO->getTurmas();
			}
			
			$data = array(
					"listaTurmas" => $listaTurmas);
			$this->load->view("buscarturma", $data);
		}
		else {
			$this->login->redirecionar("admin");
		}
	}
	
	public function getTurmasByMateria($idMateria){
		$this->load->model("loginmodel", "login");
		$saida = array();
		if($this->login->testaLogado("professor")){
			if(is_numeric($idMateria)){
				$this->load->model("dao/TurmaDAO", "tDAO");
				$idProfessor = $this->login->idLogado();
				$listaTurma = $this->tDAO->getTurmasByIdMateria($idMateria, $idProfessor);
				if($listaTurma && count($listaTurma) > 0){
					$listaTurmas = array();
					foreach($listaTurma as $t){
						$turma = array();
						$turma['id'] = $t->getIdTurma();
						$turma['nome'] = $t->getNome();
						$turma['serie'] = $t->serie->getIdSerie();
						array_push($listaTurmas, $turma);
					}
					$saida['error'] = 0;
					$saida['listaTurmas'] = $listaTurmas;
				} else {
					$saida['error'] = 1;
					$saida['msg'] = "Sem turmas";
				}
			} else {
				$saida['error'] = -1;
				$saida['msg'] = "Id não numérico";
			}
		}
		else {
			$this->login->redirecionar("professor");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function getTurma($id){
		$this->load->model("loginmodel", "login");

		if($this->login->testaLogado("admin")){
			if(isset($id) && $id != "" && is_numeric($id)){
				$this->load->model("dao/TurmaDAO", "tDAO");
				$turma = $this->tDAO->getTurmaById($id);
				$this->load->model("dao/SerieDAO", "sDAO");
				$listaSerie = $this->sDAO->getListaSerieByIdEnsino($turma->serie->getIdEnsino());
				$this->load->model("dao/EnsinoDAO", "eDAO");
				$listaEnsino = $this->eDAO->getListaEnsino();
				$data = array(
						"turma" => $turma,
						"listaSerie" => $listaSerie,
						"listaEnsino" => $listaEnsino);
				$this->load->view("cadastroturma", $data);
			} else {
				echo "Id não é válido";
			}
		}
		else {
			$this->login->redirecionar("admin");
		}
	}
	
	public function relacionarTurmaAluno(){
		$this->load->model("loginmodel", "login");
		$saida = array();
		$saida['error'] = -9;
		$saida['msg'] = "Erro desconhecido";
		if($this->login->testaLogado("admin")){
			if(isset($_POST['idTurma']) && $_POST['idTurma'] != ""){
				$idTurma = (int)$_POST['idTurma'];
				if(isset($_POST['alunos']) && $_POST['alunos'] != ""){
					$alunos = $_POST['alunos'];
				} else {
					$alunos = array();
				}
				$this->load->model("dao/TurmaDAO", "tDAO");
				$ret = $this->tDAO->relacionarTurmaAluno($idTurma, $alunos);
				if($ret){
					if(is_array($ret) && count($ret) > 0){
						$saida['listIdErro'] = $ret;
					} else {
						$saida['listIdErro'] = 0;
					}
					$saida['error'] = 0;
					$saida['msg'] = "Relacionado com sucesso";
				} else {
					$saida['error'] = -2;
					$saida['msg'] = "Erro ao fazer a relação";
				}
			} else {
				$saida['error'] = -1;
				$saida['msg'] = "Dados incompletos";
			}
		} else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function inserirTurmaAluno(){
		$this->load->model("loginmodel", "login");
		$saida = array();
		$saida['error'] = -9;
		$saida['msg'] = "Erro desconhecido";
		if($this->login->testaLogado("admin")){
			if(isset($_POST['idAluno']) && $_POST['idAluno'] != "" && isset($_POST['idTurma']) && $_POST['idTurma'] != ""){
				$idAluno = (int) $_POST['idAluno'];
				$idTurma = (int) $_POST['idTurma'];
				$this->load->model("dao/TurmaDAO", "tDAO");
				$retorno = $this->tDAO->inserirTurmaAluno($idAluno, $idTurma);
				if($retorno){
					$retorno = (int)$retorno;
					if($retorno == 11){
						$retorno = 0;
					}
					$saida['error'] = $retorno;
					if($retorno == -2){
						$saida['msg'] = "Aluno alterado de turma";
					}
					elseif($retorno == -1){
						$saida['msg'] = "Aluno já está nessa turma";
					}
					elseif($retorno == 0){
						$saida['msg'] = "Inserido com sucesso";
					}
					else {
						$saida['msg'] = "Erro desconhecido";
					}
				} else {
					$saida['error'] = -8;
					$saida['msg'] = "Erro ao relacionar";
				}
			} else {
				$saida['error'] = -7;
				$saida['msg'] = "Aluno/Turma é obrigatório";
			}
		} else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function inserirEditar($id){
		$this->load->model("loginmodel", "login");
		$saida = array();
		$saida['error'] = -9;
		$saida['msg'] = "Erro desconhecido";
		if($this->login->testaLogado("admin")){
			if(is_numeric($id)){
				if(isset($_POST['idSerie']) && $_POST['idSerie'] != "" && is_numeric($_POST['idSerie']) && isset($_POST['strTurma']) && $_POST['strTurma'] != ""){
					$idSerie = (int)$_POST['idSerie'];
					$strTurma = $_POST['strTurma'];
					$this->load->model("dao/TurmaDAO", "tDAO");
					$retorno = $this->tDAO->inserirEditar($id, $idSerie, $strTurma);
					if($retorno){
						if($retorno == -99){
							$retorno = 0;
						}
						$retorno = (int)$retorno;
						$saida['error'] = $retorno;
						if($retorno == 0){
							$saida['msg'] = "Turma inserida com sucesso";
						}
						elseif($retorno == 1){
							$saida['msg'] = "Turma editada com sucesso";
						}
						else {
							$saida['msg'] = "Turma não encontrada para editar";
						}
					} else {
						$saida['error'] = -4;
						$saida['msg'] = "Erro ao inserir/Editar Turma";
					}
				} else {
					$saida['error'] = -2;
					$saida['msg'] = "Todos os campos são obrigatórios";
				}
			} else {
				$saida['error'] = -3;
				
				$saida['msg'] = "Id da turma inválido";
			}
			
		}
		else {
			$this->login->redirecionar("admin");
		}
		
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function getListaSerieTurmaByIdEnsino($id){
		$this->load->model("loginmodel", "login");
		$saida = array();
		$saida['error'] = -2;
		$saida['msg'] = "Erro desconhecido";
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/TurmaDAO", "tDAO");
			$listaTurma = $this->tDAO->getListaSerieTurmaByIdEnsino($id);
			$saida['error'] = 0;
			$saida['msg'] = "Sucesso";
			$listaTurmas = array();
			if($listaTurma){
				foreach($listaTurma as $s){
					$turma = array();
					$turma['id'] = $s->getIdTurma();
					$turma['strserie'] = $s->serie->getStrSerie();
					$turma['serie'] = $s->serie->getSerie();
					$turma['idSerie'] = $s->serie->getIdSerie();
					$turma['nome'] = $s->getNome();
					array_push($listaTurmas, $turma);
				}
				$saida['listaTurma'] = $listaTurmas;
			} else {
				$saida['listaTurma'] = -1; // Sem séries
			}
		} else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function index(){
		
	}
	public function cadastrar(){
		$this->load->model("loginmodel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/EnsinoDAO", "eDAO");
			$listaEnsino = $this->eDAO->getListaEnsino();
			$data = array(				
				"listaEnsino" => $listaEnsino
				);
			$this->load->view("cadastroturma", $data);
		}
		else {
			$this->login->redirecionar("admin");
		}
	}
	
	
	
}